<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Chapter 2. Creating a New Berkeley DB Binary</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Porting Berkeley DB" />
    <link rel="up" href="index.html" title="Porting Berkeley DB" />
    <link rel="prev" href="portprocess.html" title="Berkeley DB Porting Process" />
    <link rel="next" href="modscope.html" title="Determining the Scope of the Modifications" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.2</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Chapter 2. Creating a New Berkeley DB Binary</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="portprocess.html">Prev</a> </td>
          <th width="60%" align="center"> </th>
          <td width="20%" align="right"> <a accesskey="n" href="modscope.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="chapter" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title"><a id="newbinary"></a>Chapter 2. Creating a New Berkeley DB Binary</h2>
          </div>
        </div>
      </div>
      <div class="toc">
        <p>
          <b>Table of Contents</b>
        </p>
        <dl>
          <dt>
            <span class="sect1">
              <a href="newbinary.html#basebuild">
Creating a Base Build of Berkeley DB
</a>
            </span>
          </dt>
          <dt>
            <span class="sect1">
              <a href="modscope.html">
Determining the Scope of the Modifications
</a>
            </span>
          </dt>
          <dd>
            <dl>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#osfunc">
Do Changes Need to be Made to the Operating System Functionality?
</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#standardfunc">Are Some Standard Functions Missing on the Target Platform?</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#sharedmem">How Will the Port Handle Shared Memory?</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#typemutex">What Type of Mutexes Will the Port Use?</a>
                </span>
              </dt>
              <dt>
                <span class="sect2">
                  <a href="modscope.html#otherchanges">Do Any Other Changes Need to be Made?</a>
                </span>
              </dt>
            </dl>
          </dd>
          <dt>
            <span class="sect1">
              <a href="buildtarget.html"> Building on the Target Platform</a>
            </span>
          </dt>
          <dt>
            <span class="sect1">
              <a href="layout.html">Source Code Layout</a>
            </span>
          </dt>
        </dl>
      </div>
      <p>
Creating a new Berkeley DB executable on the target platform, involves:
</p>
      <div class="orderedlist">
        <ol type="1">
          <li>
            <p>
<a class="xref" href="newbinary.html#basebuild" title="Creating a Base Build of Berkeley DB">
Creating a Base Build of Berkeley DB
</a>
</p>
          </li>
          <li>
            <p>
<a class="xref" href="modscope.html" title="Determining the Scope of the Modifications">
Determining the Scope of the Modifications
</a>
</p>
          </li>
          <li>
            <p>
        <a class="xref" href="buildtarget.html" title="Building on the Target Platform"> Building on the Target Platform</a>
</p>
          </li>
        </ol>
      </div>
      <div class="sect1" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h2 class="title" style="clear: both"><a id="basebuild"></a>
Creating a Base Build of Berkeley DB
</h2>
            </div>
          </div>
        </div>
        <p>
The simplest way to begin a port is to attempt to configure and build Berkeley DB on a UNIX or UNIX-like system. This gives you a list of the files that you needed to build Berkeley DB as well as the configuration files you can use as a starting point for building on your target port.
</p>
        <p>
To create a base build of Berkeley DB, following the instructions in the
<em class="citetitle">Berkeley DB Programmer's Reference Guide</em>:
</p>
        <div class="orderedlist">
          <ol type="1">
            <li>
              <p>
Download a Berkeley DB distribution from <a class="ulink" href="http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html" target="_top">http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html</a>.
</p>
            </li>
            <li>
              <p>
Build Berkeley DB.
</p>
            </li>
          </ol>
        </div>
        <p>Berkeley DB uses the GNU autoconf tools for configuration on almost all of
the platforms it supports.  Specifically, the include file
<code class="filename">db_config.h</code> configures the Berkeley DB build.  The simplest way to
begin a port is to configure and build Berkeley DB on a UNIX or UNIX-like
system, and then take the <code class="filename">Makefile</code> and <code class="filename">db_config.h</code>
file created by that configuration, and modify it by hand to reflect
the needs of the new architecture.  Unless you are already familiar with
the GNU autoconf toolset, we do not recommend you take the time to
integrate your changes back into the Berkeley DB autoconfiguration framework.
Instead, send us context diffs of your changes and any new source files
you created, and we can integrate the changes into our source tree.</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="portprocess.html">Prev</a> </td>
          <td width="20%" align="center"> </td>
          <td width="40%" align="right"> <a accesskey="n" href="modscope.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Berkeley DB Porting Process </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> 
Determining the Scope of the Modifications
</td>
        </tr>
      </table>
    </div>
  </body>
</html>
